home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t8.d64 / gradebook.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  7KB  |  266 lines

  1. 1 CLOSE15:OPEN15,8,15:GOTO5
  2. 2 INPUT#15,A,A$:IFA<=1THENRETURN
  3. 3 PRINTA$:IFA=62ORA=63THENRETURN
  4. 4 STOP
  5. 5 POKE53280,12:POKE53281,12:PRINTCHR$(5)CHR$(8)CHR$(14):Z$=CHR$(0):DD$="XXX"
  6. 10 NG=50:REM  NG=NUMBER OF GRADES
  7. 20 NS=50:REM  NS=NUMBER OF STUDENTS
  8. 30 DIM SN$(NS),SB$(NG),WT$(NG),WT(NG),     A(NS,NG)
  9. 40 DEFFNGR(I)=INT((A(I,J)/2.5)+.5)
  10. 45 DEFFNRD(X)=INT(100*X+.5)/100
  11. 50 PRINT"[147]            [199][210][193][196][197][194][207][207][203]  7.0
  12. 60 [153]"            (null)OM (null)ICHARDSON
  13. 70 PRINT"             [196]ANA [195]OLLEGE
  14. 80 [153]"             (null)CTOBER 1983
  15. 90 FORI=1TO1000:NEXT
  16. 100 PRINT"[147]       [199]RADEBOOK 7.0  [207]CT 1983"
  17. 110 PRINT"            A.  NEW FILE
  18. 120 [153]"            B.  EXISTING FILE
  19. 130 PRINT"            C.  TERMINATE
  20. 140 [153]"           PRESS A LETTER
  21. 150 GS$="ABC":GOSUB3800
  22. 160 IFV=3THENEND
  23. 170 GOSUB4400
  24. 300 PRINT"[147][199]RADEBOOK 7.0  [207]CT 1983"
  25. 310 PRINT"CURRENT FILE IS "F$
  26. 320 PRINT"   A.  ENTER GRADES
  27. 330 [153]"   B.  INSPECT GRADES
  28. 340 PRINT"   C.  LIST GRADES
  29. 350 [153]"   D.  CALCULATE GRADES
  30. 360 PRINT"   E.  CLASS/ENTRY LIST
  31. 370 [153]"   F.  ANOTHER FILE
  32. 380 PRINT"   G.  TERMINATE
  33. 390 GS$[178]"ABCDEFG":[141]3800:VV[178]V
  34. 395 [145]V[137]600,700,700,1700,400,500,500
  35. 400 [153]"(null)IST BY SWAITTUDENT OR EWAITNTRY":GS$[178]"SE":J[178]0:[141]3800:[145]V[137]410,450
  36. 410 [141]440:[141]3900:KK[178]0:                [129]K[178]1[164]NS
  37. 411 I[178]K:[141]5100:[139]FG[178]1[167]430
  38. 412 [153]SN$;:KK[178]KK[170]1:                      [139]KK[178]1[167][153][163]20);
  39. 413 [139]KK[178]2[167]KK[178]0:[153]
  40. 420 J[178]J[170]1:[139]J[178]40[167][141]3900:[141]3700:J[178]0:[141]440:[141]3900
  41. 430 [130]:[137]480
  42. 440 [153]"LOADLENLASS LIST OF "F$:[142]
  43. 450 [141]490:[141]3900:[129]K[178]1[164]NG[169]2:[153]SB$(K)[163]20)SB$(K[170]1)
  44. 460 J[178]J[170]1:[139]J[178]20[167][141]3900:[141]3700:J[178]0:[141]490:[141]3900
  45. 470 [130]
  46. 480 [141]3900:[141]3700:[137]300
  47. 490 [153]"LOAD(null)UBJECT LIST OF "F$:[142]
  48. 500 [139]SD[178]1[167][141]4900
  49. 510 [139]V[178]6[167]100
  50. 520 [128]
  51. 600 [143]  GRADE ENTRY
  52. 610 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null) ENTRY FOR "F$
  53. 620 [153]"LAST ENTRY WAS #"NG[171]1"CMD: "SB$(NG[171]1)
  54. 630 [153]"TITLE FOR THIS ENTRY #"NG"CMD:":SD[178]1
  55. 640 [133]"      *CMDCMDCMD";SB$(NG)
  56. 650 [153]"VALNTER GRADE FOR EACH STUDENT
  57. 660 FORI=1TONS:GOSUB5100:IFFG=1             THENA(I,NG)=0:GOTO695
  58. 665 PRINT""SN$(I)"                  "
  59. 670 INPUT"   *[157][157][157]";G$
  60. 680 A(I,NG)=INT(2.5*VAL(G$)):               IFA(I,NG)>255THENA(I,NG)=255
  61. 690 PRINT"[145]                           "
  62. 695 NEXT:NG=NG+1:GOTO300
  63. 700 REM  INSPECT/CORRECT/LIST GRADES
  64. 710 PRINT"[147][199][210][193][196][197][194][207][207][203] FOR "F$
  65. 720 IFV=2THENPRINT"[201]NSPECT/CORRECT GRADES BY
  66. 730 [139]V[178]3[167][153]"LIST GRADES FOR
  67. 740 PRINT"     S[146]TUDENT
  68. 750 [153]"     EWAITNTRY
  69. 760 GS$="SE":GOSUB3800
  70. 770 ONVGOSUB3500,3600
  71. 780 IFSS$="*"THEN300
  72. 790 IFVV=3THENPRINT"[147][199]RADES FOR ";         :ONVGOTO1000,1100
  73. 800 PRINT"[147][199]RADE INSPECTION/CORRECTION FOR
  74. 810 [153]"    ";:[145]V[137]1200,1500
  75. 1000 [143] LIST GRADES FOR STUDENT
  76. 1010 [153]SN$(I)"":CT[178]0
  77. 1020 [129]J[178]1[164]NG
  78. 1030 [153]SB$(J)[163]20)[165]GR(I)
  79. 1040 CT[178]CT[170]1:[139]CT[178]20[167]CT[178]0:[141]3900:[141]3700:[141]3900:[153]""SN$(I)""
  80. 1050 [130]:[141]3900:[141]3700:[137]300
  81. 1100 [143] LIST GRADES FOR SUBJECT
  82. 1110 [153]SB$(I)"":CT[178]0:J[178]I
  83. 1120 [129]I[178]1[164]NS
  84. 1125 [141]5100:[139]FG[178]1[167]1150
  85. 1130 [153]SN$(I)[163]20)[165]GR(I)
  86. 1140 CT[178]CT[170]1:[139]CT[178]20[167]CT[178]0:[141]3900:[141]3700:[153]"LOAD"SB$(J)""
  87. 1150 [130]:[141]3900:[141]3700:[137]300
  88. 1200 [143] INSPECT GRADES BY STUDENT
  89. 1210 [153]SN$(I)
  90. 1220 [153]"PRESS RETURNWAIT IF GRADE IS CORRECT
  91. 1240 PRINT"      PRESS X[146] TO CHANGE
  92. 1250 [129]J[178]1[164]NG:[153]"                                       "
  93. 1255 [153]"ON"SB$(J)[163]20)[165]GR(I)
  94. 1260 GS$[178]"X"[170][199](13):[141]3800
  95. 1270 [139]V[178]2[167]1310
  96. 1280 [133]"CORRECT GRADE CMD  *CMDCMDCMD";A$
  97. 1290 [153]"ON                                     ":A(I,J)[178][181](2.5[172][197](A$))
  98. 1300 SD[178]1:[139]A(I,J)[177]255[167]A(I,J)[178]255
  99. 1310 [130]:[137]300
  100. 1500 [143] INSPECT GRADES BY ENTRY
  101. 1510 J[178]I:[153]SB$(J)
  102. 1520 [153]"PRESS RETURNWAIT IF GRADE IS CORRECT
  103. 1540 PRINT"      PRESS X[146] TO CHANGE
  104. 1550 [129]I[178]1[164]NS:[141]5100:[139]FG[178]1[167]1620
  105. 1560 [153]"                                       "
  106. 1565 [153]"ON"SN$(I)[163]20)[165]GR(I)
  107. 1570 GS$[178]"X"[170][199](13):[141]3800
  108. 1580 [139]V[178]2[167]1620
  109. 1590 [133]"CORRECT GRADE CMD  *CMDCMDCMD";A$
  110. 1600 [153]"ON                                     ":A(I,J)[178][181](2.5[172][197](A$))
  111. 1610 SD[178]1:[139]A(I,J)[177]255[167]A(I,J)[178]255
  112. 1620 [130]:[137]300
  113. 1700 [143]  CALCULATE GRADES FROM DATA              THIS PART--SELECT WEIGHTS
  114. 1710 [141]1800:K[178]0:[143] PRINT HEAD
  115. 1720 [129]J[178]1[164]NG:LL[178]J:L[178]J:[141]1850
  116. 1730 K[178]K[170]1:[139]K[178]8[167][141]1900:K[178]0
  117. 1740 [130]:[141]1900
  118. 1750 [137]2000
  119. 1800 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null) FOR "F$
  120. 1810 [153]"  LENURRENT WEIGHTING FACTORS"    :[141]3900:[153]:[142]
  121. 1850 A$[178][201]("  "[170][196](L),3)
  122. 1860 [153]A$[163]10)SB$(L)[163]30)WT$(L)
  123. 1870 [142]
  124. 1900 [143] PAUSE IN WEIGHT CHECK
  125. 1910 [141]3900:[153]" ANY CHANGES YWAIT/N"   :GS$[178]"YN":[141]3800:[139]V[178]2[167]1970
  126. 1920 [133]"WHICH ONE CMD  *CMDCMDCMD";A$
  127. 1930 A[178][197](A$):[139]A[178]0[167][153]"ONONON":          [137]1920
  128. 1940 [153]"CURRENT WEIGHT IS "WT$(A)
  129. 1950 [133]"NEW WEIGHT CMD  *CMDCMDCMD";WT$(A)
  130. 1960 [153]"MORE CHANGES YWAIT/N":            SD[178]1:GS$[178]"YN":[141]3800
  131. 1970 [141]1800:[139]V[178]2[167][142]
  132. 1980 [129]L[178]LL[170]1[171]K[164]LL:[141]1850:[130]
  133. 1990 [137]1900
  134. 2000 [153]"(null)ORMALIZING WEIGHTS, PLEASE STAND BY":SU[178]0
  135. 2010 [129]J[178]1[164]NG:WT(J)[178][197](WT$(J))           :SU[178]SU[170]WT(J):[130]
  136. 2020 [129]J[178]1[164]NG:WT(J)[178]WT(J)[173]SU:[130]
  137. 2100 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null)  FOR "F$
  138. 2110 [153]"  CHR$RADE CALCULATION--WEIGHTED RESULT FOR
  139. 2120 PRINT"      S[146]TUDENTS
  140. 2130 [153]"      EWAITNTRIES
  141. 2140 GS$="SE":GOSUB3800:IFV=2THEN2500
  142. 2200 REM GRADE FOR STUDENT
  143. 2205 PRINT:GOSUB3900:PRINT
  144. 2210 PRINT"      C[146]LASS
  145. 2220 [153]"      IWAITNDIVIDUAL
  146. 2230 GS$="CI":GOSUB3800
  147. 2240 PRINT"[147][215]EIGHTED GRADE FOR
  148. 2250 [139]V[178]1[167]2400
  149. 2260 [141]3500:[139]SS$[178]"*"[167]300
  150. 2270 [141]2300:[153]""SN$(I)
  151. 2280 [153]"   IS"SU""
  152. 2290 [141]3700:[137]300
  153. 2300 SU[178]0:[129]J[178]1[164]NG
  154. 2310 SU[178]SU[170][165]GR(I)[172]WT(J)
  155. 2320 [130]:SU[178][165]RD(SU):[142]
  156. 2400 [141]3350:[143]  SET STATS
  157. 2410 [153]"":K[178]0:[129]I[178]1[164]NS:[141]5100      :[139]FG[178]1[167]2450
  158. 2420 [141]2300:[153]SN$(I)[163]20)SU
  159. 2430 [141]3400
  160. 2440 K[178]K[170]1:[139]K[178]15[167][141]3900:[141]3700    :[141]3900:[153]"LOAD":K[178]0
  161. 2450 [130]
  162. 2460 [141]3450
  163. 2470 [153]"  AVG WEIGHTED GRADE ="AV
  164. 2480 [153]"  STANDARD DEVIATION ="DV       :[153]""
  165. 2490 [141]3700:[137]300
  166. 2500 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null) FOR "F$
  167. 2510 [141]3600:[139]SS$[178]"*"[167]300
  168. 2520 [141]3350
  169. 2530 J[178]I:[129]I[178]1[164]NS
  170. 2540 [141]5100:[139]FG[178]1[167]2570
  171. 2550 SU[178][165]GR(I)
  172. 2560 [141]3400
  173. 2570 [130]I
  174. 2580 [153]"FOR ENTRY "SB$(J)
  175. 2590 [141]3450
  176. 2600 [153]" AVERAGE GRADE ="AV
  177. 2610 [153]"  STANDARD DEV ="DV""
  178. 2620 [141]3700:[137]300
  179. 3299 [137]300
  180. 3350 [143]  INIT FOR STATS
  181. 3360 SX[178]0:X2[178]0:N[178]0
  182. 3370 [142]
  183. 3400 [143]  STAT ENTRY
  184. 3410 SX[178]SX[170]SU:X2[178]X2[170]SU[172]SU:N[178]N[170]1
  185. 3420 [142]
  186. 3450 [143]  STAT CALCN
  187. 3460 AV[178]SX[173]N:DV[178][186]((X2[171]N[172]AV[172]AV)[173](N[171]1))
  188. 3470 AV[178][165]RD(AV):DV[178][165]RD(DV)
  189. 3480 [142]
  190. 3500 [143]  NAME SEARCH
  191. 3510 [133]"VALNTER NAME  *CMDCMDCMD";SS$
  192. 3520 [139]SS$[178]"*"[167][142]
  193. 3530 LL[178][195](SS$)
  194. 3540 [129]I[178]1[164]NS:K[178][195](SN$(I))[171]LL[170]1:[129]J[178]1[164]K
  195. 3550 [139]SS$[178][202](SN$(I),J,LL)[167][142]
  196. 3560 [130]J:[130]I:[153]""SS$" NOT IN "F$:[137]3510
  197. 3600 [143]  SUBJECT SEARCH
  198. 3610 [133]"VALNTER SUBJECT  *CMDCMDCMD";SS$
  199. 3620 [139]SS$[178]"*"[167][142]
  200. 3630 LL[178][195](SS$)
  201. 3640 [129]I[178]1[164]NS:K[178][195](SB$(I))[171]LL[170]1:[129]J[178]1[164]K
  202. 3650 [139]SS$[178][202](SB$(I),J,LL)[167][142]
  203. 3660 [130]J:[130]I:[153]""SS$" NOT IN "F$:[137]3610
  204. 3700 [153]"PRESS RETURNWAIT TO CONTINUE":      GS$[178][199](13)
  205. 3800 [161]G$:[129]V[178]1[164][195](GS$):[139][202](GS$,V,1)[178]G$[167][142]
  206. 3810 [130]:[137]3800
  207. 3900 [153]"---------------------------------------":[142]
  208. 4400 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null)--GET A FILE":VV[178]V
  209. 4410 [139]V[178]1[167][153]"(null)EW FILE"
  210. 4420 [139]V[178]2[167][153]"VALXISTING FILE"
  211. 4430 [133]"ENTER NAME OF FILE*CMDCMDCMD";F$
  212. 4440 [139]F$[178]"*"[167][128]
  213. 4450 F$[178][200](F$,15)
  214. 4460 [153]"VERIFY NAME YWAIT/NWAIT:  "F$
  215. 4470 GS$[178]"YN":[141]3800:[139]V[178]2[167]4430
  216. 4480 [159]8,8,8,"0:N"[170]F$[170]",S,R":[141]2
  217. 4490 [139]A[178]62[167][167][160]8:[137]4430
  218. 4500 [161]#8,A$:NS[178][198](A$[170]Z$)
  219. 4505 [153]"READING NUMBER OF STUDENTS"
  220. 4510 [139]VV[178]2[167]4700
  221. 4520 [159]9,8,9,"0:G"[170]F$[170]",S,W":[141]2
  222. 4530 [139]A[178]63[167][160]9:[137]4700
  223. 4535 [153]"CREATING GRADES FILE"
  224. 4540 [152]9,[199](1);
  225. 4550 [152]9,DD$
  226. 4560 [152]9,DD$
  227. 4570 [129]I[178]1[164]NS
  228. 4580 [152]9,[199](0);
  229. 4590 [130]I
  230. 4600 [160]9
  231. 4700 [159]9,8,9,"0:G"[170]F$[170]",S,R":[141]2
  232. 4710 [139]A[178]62[167][160]9:[137]4520
  233. 4715 [153]"READING GRADES FILE"
  234. 4720 [161]#9,A$:NG[178][198](A$[170]Z$)
  235. 4730 [129]J[178]1[164]NG
  236. 4735 [132]9,SB$(J)
  237. 4740 [132]9,WT$(J)
  238. 4760 [129]I[178]1[164]NS
  239. 4770 [161]#9,A$:A(I,J)[178][198](A$[170]Z$)
  240. 4780 [130]I:[130]J
  241. 4790 [160]9
  242. 4800 [153]"READING NAMES FILE"
  243. 4805 [129]I[178]1[164]NS:[132]8,SN$(I):[130]
  244. 4810 [160]8:[142]
  245. 4900 [153]"LOADCHR$(null)ATNSTR$VALPEEK(null)(null)(null):  (null)AVING DATA FOR ":[153]""F$
  246. 4910 [152]15,"S0:GRD.BACKUP"
  247. 4920 [152]15,"R0:GRD.BACKUP=G"[170]F$
  248. 4930 [159]8,8,8,"0:G"[170]F$[170]",S,W"
  249. 4940 [152]8,[199](NG);
  250. 4950 SB$(NG)[178]DD$:WT$(NG)[178]DD$
  251. 4960 [129]J[178]1[164]NG
  252. 4965 [152]8,SB$(J)
  253. 4970 [152]8,WT$(J)
  254. 4980 [129]I[178]1[164]NS
  255. 4990 [152]8,[199](A(I,J));
  256. 5000 [130]I:[130]J
  257. 5010 [160]8:[139]SD[178]0[167][142]
  258. 5020 [153]"PEEKACKUP COPY?  YWAIT/N
  259. 5030 GS$="YN":GOSUB3800:SD=0                :IFV=2THENRETURN
  260. 5040 PRINT"[201]NSERT SECOND DISK AND PRESS RETURN[146]
  261. 5050 GS$[178][199](13):[141]3800:[137]4910
  262. 5100 [143] TEST NAME FOR DROP
  263. 5110 FG[178]0:[139][200](SN$(I),4)[178]"DROP"           [167]FG[178]1:[142]
  264. 5120 SN$[178]SN$(I)
  265. 5130 [142]
  266.